Detox হল একটি জনপ্রিয় End-to-End (E2E) Testing ফ্রেমওয়ার্ক যা React Native অ্যাপ্লিকেশনগুলির জন্য ব্যবহৃত হয়। এটি মূলত অ্যাপ্লিকেশনটির ইন্টারফেস এবং ফাংশনালিটি টেস্ট করার জন্য ডিজাইন করা হয়েছে, যা আপনার অ্যাপের রিয়েল টাইম ব্যবহারকারীর মত আচরণ করে এবং বিভিন্ন ইন্টারঅ্যাকশন পরীক্ষা করে। Detox ব্যবহার করে আপনি আপনার React Native অ্যাপের মধ্যে UI ইন্টারঅ্যাকশন যেমন বাটন প্রেস, ফর্ম ফিলিং, স্ক্রলিং ইত্যাদি পরীক্ষা করতে পারেন।
Detox এর বৈশিষ্ট্য
- UI Testing: অ্যাপ্লিকেশনটির ইউজার ইন্টারফেস টেস্ট করতে পারে, যেমন বাটন টিপানো, টেক্সট ইনপুট করা, বা স্ক্রলিং করা।
- Integration Testing: অ্যাপের ভিন্ন অংশের মধ্যে ইন্টিগ্রেশন পরীক্ষা করা।
- Asynchronous Testing: অ্যাপের অ্যাসিঙ্ক্রোনাস কার্যক্রমের জন্য অপেক্ষা করতে সক্ষম (যেমন নেটওয়ার্ক কল বা টাইমার)।
- Cross-platform Testing: iOS এবং Android প্ল্যাটফর্মের জন্য একযোগভাবে টেস্ট করতে পারে।
- Reliable and Fast: Detox পারফরম্যান্স এবং নির্ভরযোগ্যতার জন্য নির্মিত, যা আপনার E2E টেস্টিংকে দ্রুত এবং কার্যকরী করে।
Detox ইনস্টলেশন এবং কনফিগারেশন
Detox ইনস্টল করা:
Detox এর জন্য প্রথমে আপনাকে detox-cli ইনস্টল করতে হবে:npm install -g detox-cliঅথবা যদি আপনি yarn ব্যবহার করেন:
yarn global add detox-cliDetox Dependency ইনস্টলেশন:
আপনার React Native প্রোজেক্টে Detox যুক্ত করার জন্য নিম্নলিখিত প্যাকেজগুলি ইনস্টল করতে হবে:npm install detox --save-devঅথবা, yarn দিয়ে:
yarn add detox --deviOS এবং Android Build সেটআপ:
Detox সঠিকভাবে কাজ করার জন্য আপনার iOS এবং Android প্ল্যাটফর্মে অ্যাপ্লিকেশন বিল্ড করতে হবে।iOS:
আপনার Xcode প্রকল্পে Detox সেটআপ করতে CocoaPods ব্যবহার করুন:
cd ios && pod install && cd ..
Android:
- Android অ্যাপের জন্য Gradle কনফিগারেশন করতে হবে।
Detox কনফিগারেশন ফাইল তৈরি করা:
আপনারpackage.jsonফাইলে Detox কনফিগারেশন যুক্ত করুন:"detox": { "configurations": { "ios.sim.release": { "binaryPath": "ios/build/Build/Products/Release-iphonesimulator/myApp.app", "build": "xcodebuild -workspace ios/myApp.xcworkspace -scheme myApp -configuration Release -sdk iphonesimulator -derivedDataPath ios/build", "type": "ios.simulator" }, "android.emu.release": { "binaryPath": "android/app/build/outputs/apk/release/app-release.apk", "build": "cd android && ./gradlew assembleRelease && cd ..", "type": "android.emulator" } } }
Detox দিয়ে টেস্টিং শুরু করা
Detox ব্যবহার করে আপনার অ্যাপ্লিকেশনটিকে টেস্ট করতে কিছু স্টেপ অনুসরণ করতে হবে।
১. Test Suite তৈরি করা
Detox এ টেস্ট সাধারণত Jest এর সাথে লেখা হয়। আপনি আপনার টেস্ট ফোল্ডার তৈরি করে সেখানে টেস্ট কেস লিখতে পারেন।
উদাহরণ:
import { element, by, expect } from 'detox';
describe('App functionality', () => {
beforeAll(async () => {
await device.launchApp();
});
it('should show the welcome screen', async () => {
await expect(element(by.id('welcomeText'))).toBeVisible();
});
it('should tap the button', async () => {
await element(by.id('myButton')).tap();
await expect(element(by.id('nextScreen'))).toBeVisible();
});
});২. Detox Test Runner রান করা
Jest ব্যবহার করে Detox টেস্ট রান করতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
detox testঅথবা, Android এবং iOS প্ল্যাটফর্মে আলাদা টেস্ট চালানোর জন্য:
detox test --configuration ios.sim.release
detox test --configuration android.emu.release৩. App Launch and Cleanup
beforeAll() এবং afterAll() ফাংশন ব্যবহার করে অ্যাপ্লিকেশন লঞ্চ এবং ক্লিনআপ করতে হবে।
beforeAll(async () => {
await device.launchApp();
});
afterAll(async () => {
await device.reloadReactNative();
});Detox এর বৈশিষ্ট্য এবং টেস্ট স্টেপ
- Launch App:
device.launchApp()দিয়ে অ্যাপ্লিকেশন লঞ্চ করা হয়। - Element Interaction:
Detoxelement(by.id('elementId'))দ্বারা UI উপাদানের সাথে ইন্টারঅ্যাক্ট করে, যেমন টেক্সট বা বাটন প্রেস। - Assertions:
expect(element(by.id('elementId'))).toBeVisible()দিয়ে উপাদানের উপস্থিতি পরীক্ষা করা হয়। - Gestures:
Detox গেস্টার কনফিগারেশন (যেমন টিপ, স্লাইড, স্ক্রল ইত্যাদি) সমর্থন করে, যাতে ব্যবহারকারীর মতো আচরণ পরীক্ষা করা যায়। - Async Support:
Detox অ্যাসিঙ্ক্রোনাস টেস্টিং সাপোর্ট করে, যেমন নেটওয়ার্ক রিকোয়েস্ট বা সময়সীমা পার হওয়া।
সারাংশ
Detox একটি শক্তিশালী End-to-End Testing ফ্রেমওয়ার্ক যা React Native অ্যাপ্লিকেশনগুলির জন্য ডিজাইন করা হয়েছে। এটি আপনার অ্যাপের ফিচার এবং ইউজার ইন্টারঅ্যাকশন পরীক্ষা করতে সহায়ক। Detox-এর সাথে আপনি UI টেস্টিং, অ্যাসিঙ্ক্রোনাস ফাংশনালিটি, এবং বিভিন্ন প্ল্যাটফর্মে অটোমেটেড টেস্ট রান করতে পারবেন। Jest এর মাধ্যমে Detox টেস্ট লেখা সহজ এবং কার্যকর, এবং এটি iOS এবং Android উভয় প্ল্যাটফর্মে টেস্ট চালাতে সহায়ক।
Read more